<!--********************************************************************
* Copyright© 2000 - 2018 SuperMap Software Co.Ltd. All rights reserved.
*********************************************************************-->
<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title data-i18n="resources.title_Scatter"></title>
    <script type="text/javascript" src="../js/include-web.js"></script>
    <script type="text/javascript" include="echarts" src="../../dist/openlayers/include-openlayers.js"></script>
</head>

<body style=" margin: 0;overflow: hidden;background: #fff;width: 100%;height:100%">
    <div id="map" class='map' style="margin:0 auto;width: 100%;height: 100%;border: 1px solid #dddddd"></div>
    <div id="infoControl" style=" position: absolute;top: 10px;right: 5px;text-align: left;"></div>
    <script type="text/javascript">
        var host = window.isLocal ? window.server : "http://support.supermap.com.cn:8090";
        var resultLayer;
        var map = new ol.Map({
            target: 'map',
            controls: ol.control.defaults({
                    attributionOptions: {
                        collapsed: false
                    }
                })
                .extend([new ol.supermap.control.Logo()]),
            view: new ol.View({
                center: [116.402, 39.905],
                zoom: 5,
                projection: 'EPSG:4326'
            }),
            layers: [new ol.layer.Tile({
                source: new ol.source.TileSuperMapRest({
                    url: host + "/iserver/services/map-world/rest/maps/世界地图_Gray",
                }),
                projection: 'EPSG:4326'
            })]
        });
        var dataBJ = [
            [1, 55, 9, 56, 0.46, 18, 6, resources.text_good],
            [2, 25, 11, 21, 0.65, 34, 9, resources.text_great],
            [3, 56, 7, 63, 0.3, 14, 5, resources.text_good],
            [4, 33, 7, 29, 0.33, 16, 6, resources.text_great],
            [5, 42, 24, 44, 0.76, 40, 16, resources.text_great],
            [6, 82, 58, 90, 1.77, 68, 33, resources.text_good],
            [7, 74, 49, 77, 1.46, 48, 27, resources.text_good],
            [8, 78, 55, 80, 1.29, 59, 29, resources.text_good],
            [9, 267, 216, 280, 4.8, 108, 64, resources.text_heavyPollution],
            [10, 185, 127, 216, 2.52, 61, 27, resources.text_moderatePollution],
            [11, 39, 19, 38, 0.57, 31, 15, resources.text_great],
            [12, 41, 11, 40, 0.43, 21, 7, resources.text_great],
            [13, 64, 38, 74, 1.04, 46, 22, resources.text_good],
            [14, 108, 79, 120, 1.7, 75, 41, resources.text_mildPollution],
            [15, 108, 63, 116, 1.48, 44, 26, resources.text_mildPollution],
            [16, 33, 6, 29, 0.34, 13, 5, resources.text_great],
            [17, 94, 66, 110, 1.54, 62, 31, resources.text_good],
            [18, 186, 142, 192, 3.88, 93, 79, resources.text_moderatePollution],
            [19, 57, 31, 54, 0.96, 32, 14, resources.text_good],
            [20, 22, 8, 17, 0.48, 23, 10, resources.text_great],
            [21, 39, 15, 36, 0.61, 29, 13, resources.text_great],
            [22, 94, 69, 114, 2.08, 73, 39, resources.text_good],
            [23, 99, 73, 110, 2.43, 76, 48, resources.text_good],
            [24, 31, 12, 30, 0.5, 32, 16, resources.text_great],
            [25, 42, 27, 43, 1, 53, 22, resources.text_great],
            [26, 154, 117, 157, 3.05, 92, 58, resources.text_moderatePollution],
            [27, 234, 185, 230, 4.09, 123, 69, resources.text_heavyPollution],
            [28, 160, 120, 186, 2.77, 91, 50, resources.text_moderatePollution],
            [29, 134, 96, 165, 2.76, 83, 41, resources.text_mildPollution],
            [30, 52, 24, 60, 1.03, 50, 21, resources.text_good],
            [31, 46, 5, 49, 0.28, 10, 6, resources.text_great]
        ];

        var dataGZ = [
            [1, 26, 37, 27, 1.163, 27, 13, resources.text_great],
            [2, 85, 62, 71, 1.195, 60, 8, resources.text_good],
            [3, 78, 38, 74, 1.363, 37, 7, resources.text_good],
            [4, 21, 21, 36, 0.634, 40, 9, resources.text_great],
            [5, 41, 42, 46, 0.915, 81, 13, resources.text_great],
            [6, 56, 52, 69, 1.067, 92, 16, resources.text_good],
            [7, 64, 30, 28, 0.924, 51, 2, resources.text_good],
            [8, 55, 48, 74, 1.236, 75, 26, resources.text_good],
            [9, 76, 85, 113, 1.237, 114, 27, resources.text_good],
            [10, 91, 81, 104, 1.041, 56, 40, resources.text_good],
            [11, 84, 39, 60, 0.964, 25, 11, resources.text_good],
            [12, 64, 51, 101, 0.862, 58, 23, resources.text_good],
            [13, 70, 69, 120, 1.198, 65, 36, resources.text_good],
            [14, 77, 105, 178, 2.549, 64, 16, resources.text_good],
            [15, 109, 68, 87, 0.996, 74, 29, resources.text_mildPollution],
            [16, 73, 68, 97, 0.905, 51, 34, resources.text_good],
            [17, 54, 27, 47, 0.592, 53, 12, resources.text_good],
            [18, 51, 61, 97, 0.811, 65, 19, resources.text_good],
            [19, 91, 71, 121, 1.374, 43, 18, resources.text_good],
            [20, 73, 102, 182, 2.787, 44, 19, resources.text_good],
            [21, 73, 50, 76, 0.717, 31, 20, resources.text_good],
            [22, 84, 94, 140, 2.238, 68, 18, resources.text_good],
            [23, 93, 77, 104, 1.165, 53, 7, resources.text_good],
            [24, 99, 130, 227, 3.97, 55, 15, resources.text_good],
            [25, 146, 84, 139, 1.094, 40, 17, resources.text_mildPollution],
            [26, 113, 108, 137, 1.481, 48, 15, resources.text_mildPollution],
            [27, 81, 48, 62, 1.619, 26, 3, resources.text_good],
            [28, 56, 48, 68, 1.336, 37, 9, resources.text_good],
            [29, 82, 92, 174, 3.29, 0, 13, resources.text_good],
            [30, 106, 116, 188, 3.628, 101, 16, resources.text_mildPollution],
            [31, 118, 50, 0, 1.383, 76, 11, resources.text_mildPollution]
        ];

        var dataSH = [
            [1, 91, 45, 125, 0.82, 34, 23, resources.text_good],
            [2, 65, 27, 78, 0.86, 45, 29, resources.text_good],
            [3, 83, 60, 84, 1.09, 73, 27, resources.text_good],
            [4, 109, 81, 121, 1.28, 68, 51, resources.text_mildPollution],
            [5, 106, 77, 114, 1.07, 55, 51, resources.text_mildPollution],
            [6, 109, 81, 121, 1.28, 68, 51, resources.text_mildPollution],
            [7, 106, 77, 114, 1.07, 55, 51, resources.text_mildPollution],
            [8, 89, 65, 78, 0.86, 51, 26, resources.text_good],
            [9, 53, 33, 47, 0.64, 50, 17, resources.text_good],
            [10, 80, 55, 80, 1.01, 75, 24, resources.text_good],
            [11, 117, 81, 124, 1.03, 45, 24, resources.text_mildPollution],
            [12, 99, 71, 142, 1.1, 62, 42, resources.text_good],
            [13, 95, 69, 130, 1.28, 74, 50, resources.text_good],
            [14, 116, 87, 131, 1.47, 84, 40, resources.text_mildPollution],
            [15, 108, 80, 121, 1.3, 85, 37, resources.text_mildPollution],
            [16, 134, 83, 167, 1.16, 57, 43, resources.text_mildPollution],
            [17, 79, 43, 107, 1.05, 59, 37, resources.text_good],
            [18, 71, 46, 89, 0.86, 64, 25, resources.text_good],
            [19, 97, 71, 113, 1.17, 88, 31, resources.text_good],
            [20, 84, 57, 91, 0.85, 55, 31, resources.text_good],
            [21, 87, 63, 101, 0.9, 56, 41, resources.text_good],
            [22, 104, 77, 119, 1.09, 73, 48, resources.text_mildPollution],
            [23, 87, 62, 100, 1, 72, 28, resources.text_good],
            [24, 168, 128, 172, 1.49, 97, 56, resources.text_moderatePollution],
            [25, 65, 45, 51, 0.74, 39, 17, resources.text_good],
            [26, 39, 24, 38, 0.61, 47, 17, resources.text_great],
            [27, 39, 24, 39, 0.59, 50, 19, resources.text_great],
            [28, 93, 68, 96, 1.05, 79, 29, resources.text_good],
            [29, 188, 143, 197, 1.66, 99, 51, resources.text_moderatePollution],
            [30, 174, 131, 174, 1.55, 108, 50, resources.text_moderatePollution],
            [31, 187, 143, 201, 1.39, 89, 53, resources.text_moderatePollution]
        ];

        var schema = [{
                name: 'date',
                index: 0,
                text: '日'
            },
            {
                name: 'AQIindex',
                index: 1,
                text: resources.text_AQIindex
            },
            {
                name: 'PM25',
                index: 2,
                text: 'PM2.5'
            },
            {
                name: 'PM10',
                index: 3,
                text: 'PM10'
            },
            {
                name: 'CO',
                index: 4,
                text: resources.text_CO
            },
            {
                name: 'NO2',
                index: 5,
                text: resources.text_NO2
            },
            {
                name: 'SO2',
                index: 6,
                text: resources.text_SO2
            }
        ];

        var dataMap = {
            "北京市": dataBJ,
            "广州市": dataGZ,
            "上海市": dataSH
        };
        var colorMap = {
            "北京市": '#dd4444',
            "广州市": '#fec42c',
            "上海市": '#80F1BE'
        };
        var itemStyle = {
            normal: {
                opacity: 0.8,
                shadowBlur: 10,
                shadowOffsetX: 0,
                shadowOffsetY: 0,
                shadowColor: 'rgba(0, 0, 0, 0.5)'
            }
        };
        option = {
            backgroundColor: '#404a59',
            color: [
                '#dd4444'
            ],
            legend: {
                y: 'top',
                data: ['北京市'],
                textStyle: {
                    color: '#fff',
                    fontSize: 16
                },
                selectedMode: 'single'
            },
            grid: {
                x: '10%',
                x2: 150,
                y: '18%',
                y2: '10%'
            },
            tooltip: {
                padding: 10,
                backgroundColor: '#222',
                borderColor: '#777',
                borderWidth: 1,
                formatter: function (obj) {
                    var value = obj.value;
                    return '<div style="border-bottom: 1px solid rgba(255,255,255,.3); font-size: 18px;padding-bottom: 7px;margin-bottom: 7px">' +
                        obj.seriesName + ' ' + resources.text_day1 + value[0] + resources.text_day2 +
                        value[7] +
                        '</div>' +
                        schema[1].text + '：' + value[1] + '<br>' +
                        schema[2].text + '：' + value[2] + '<br>' +
                        schema[3].text + '：' + value[3] + '<br>' +
                        schema[4].text + '：' + value[4] + '<br>' +
                        schema[5].text + '：' + value[5] + '<br>' +
                        schema[6].text + '：' + value[6] + '<br>';
                }
            },
            xAxis: {
                type: 'value',
                name: resources.text_data,
                nameGap: 16,
                nameTextStyle: {
                    color: '#fff',
                    fontSize: 14
                },
                max: 31,
                splitLine: {
                    show: false
                },
                axisLine: {
                    lineStyle: {
                        color: '#eee'
                    }
                }
            },
            yAxis: {
                type: 'value',
                name: resources.text_AQIindex,
                nameLocation: 'end',
                nameGap: 20,
                nameTextStyle: {
                    color: '#fff',
                    fontSize: 16
                },
                axisLine: {
                    lineStyle: {
                        color: '#eee'
                    }
                },
                splitLine: {
                    show: false
                }
            },
            visualMap: [{
                    left: 'right',
                    top: '5%',
                    dimension: 2,
                    min: 0,
                    max: 250,
                    itemWidth: 20,
                    itemHeight: 80,
                    calculable: true,
                    precision: 0.1,
                    text: [resources.text_roundSize],
                    textGap: 20,
                    textStyle: {
                        color: '#fff'
                    },
                    inRange: {
                        symbolSize: [10, 70]
                    },
                    outOfRange: {
                        symbolSize: [10, 70],
                        color: ['rgba(255,255,255,.2)']
                    },
                    controller: {
                        inRange: {
                            color: ['#c23531']
                        },
                        outOfRange: {
                            color: ['#444']
                        }
                    }
                },
                {
                    left: 'right',
                    bottom: '5%',
                    dimension: 6,
                    min: 0,
                    max: 50,
                    itemHeight: 80,
                    itemWidth: 20,
                    calculable: true,
                    precision: 0.1,
                    text: [resources.text_SO2text],
                    textGap: 20,
                    textStyle: {
                        color: '#fff'
                    },
                    inRange: {
                        colorLightness: [1, 0.5]
                    },
                    outOfRange: {
                        color: ['rgba(255,255,255,.2)']
                    },
                    controller: {
                        inRange: {
                            color: ['#c23531']
                        },
                        outOfRange: {
                            color: ['#444']
                        }
                    }
                }
            ],
            series: [{
                name: '北京市',
                type: 'scatter',
                itemStyle: itemStyle,
                data: dataBJ
            }]
        };
        var chart = echarts.init(document.createElement('div'), '', {
            width: 500,
            height: 350
        });
        chart.setOption(option);
        var control = new ol.control.Control({
            element: chart.getDom(),
            target: document.getElementById('infoControl')
        });
        map.addControl(control);
        query();

        function query() {
            clearLayer();
            var queryService = new ol.supermap.QueryService(host + "/iserver/services/map-china400/rest/maps/China");
            var param = new SuperMap.QueryBySQLParameters({
                queryParams: [{
                    name: "China_ProCenCity_pt@China",
                    attributeFilter: "NAME = '广州市' or NAME = '上海市'"
                }, {
                    name: "China_Capital_pt@China",
                    attributeFilter: "NAME = '北京市'"
                }]
            });
            queryService.queryBySQL(param, function (serviceResult) {
                var features = [];
                for (var i = 0; i < serviceResult.result.recordsets.length; i++) {
                    var temp = (new ol.format.GeoJSON()).readFeatures(serviceResult.result.recordsets[i].features, {
                        dataProjection: 'EPSG:3857',
                        featureProjection: 'EPSG:4326'
                    });
                    features = features.concat(temp);
                }
                resultLayer = new ol.layer.Vector({
                    source: new ol.source.Vector({
                        wrapX: false,
                        features: features
                    })
                });
                map.addLayer(resultLayer);
                var select = new ol.interaction.Select({
                    features: [features[2]]
                });
                map.addInteraction(select);
                select.on('select', function (e) {
                    if (this.getFeatures().getLength() > 0) {
                        var city = this.getFeatures().item(0).getProperties().NAME;
                        var data1 = [];
                        var data2 = [];
                        for (var i = 0; i < 7; i++) {
                            var data = Math.random().toFixed(2);
                            data1.push(data);
                            data2.push(data * (Math.random() + 1.5));
                        }
                        chart.setOption({
                            color: [
                                colorMap[city]
                            ],
                            legend: {
                                data: [city]
                            },
                            series: [{
                                name: city,
                                type: 'scatter',
                                itemStyle: itemStyle,
                                data: dataMap[city]
                            }]
                        });
                    }
                    map.getView().setCenter(e.mapBrowserEvent.coordinate);
                });
            });
        }

        function clearLayer() {
            if (resultLayer) {
                map.removeLayer(resultLayer);
            }
        }
    </script>
</body>

</html>